﻿using System;
using System.IO;
using System.Web.UI.WebControls;
using Negocio.Marca;
using Negocio.SubtipoProduto;
using Negocio.Produto;
using Negocio.TipoProduto;

namespace qbaproject.Produto.Incluir
{
    public partial class incluirProduto : System.Web.UI.Page
    {
        int idMarca;
        int idSubtipoProduto;
        string cdProduto;
        int idProduto;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                carregarDdl();
            }
        }

        public void carregarDdl()
        {
            var obNSubtipoProduto = new NSubtipoProduto();
            var obNMarca = new NMarca();
            var obNTipoProduto = new NTipoProduto();

            //Carregar tipo de produto
            ddlTiposProduto.DataSource = obNTipoProduto.pegarTiposProduto();
            ddlTiposProduto.DataBind();
            ddlTiposProduto.Items.Insert(0, new ListItem("Selecionar o tipo de produto", "0"));

            //Carregar subtipo de produto
            ddlSubtiposProduto.DataSource = obNSubtipoProduto.pegarSubtiposProduto();
            ddlSubtiposProduto.DataBind();
            ddlSubtiposProduto.Items.Insert(0, new ListItem("Selecionar o subtipo de produto", "0"));

            //Carregar marcas
            ddlMarcas.DataSource = obNMarca.pegarMarcas();
            ddlMarcas.DataBind();
            ddlMarcas.Items.Insert(0, new ListItem("Selecionar a marca do produto", "0"));


        }

        protected void lnk_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Produto/Consultar/consultarProduto.aspx");
        }

        protected void lkbSalvar_Click(object sender, EventArgs e)
        {
            if (verificarForm())
            {
                var obNProduto = new NProduto();


                //this.txtTeFoto.SaveAs(Server.MapPath("../../Imagens/Produto/" + txtTeFoto.FileName+ Path.GetExtension(txtTeFoto.FileName)));
                //this.txtTeFoto.SaveAs(Server.MapPath("../../Imagens/Produto/" + txtTeFoto.FileName));
                
                var nomeArquivo = txtTeFoto.FileName;
                obNProduto.nmProduto = txtNmProduto.Text;
                obNProduto.dsProduto = txtDsProduto.Text;
                obNProduto.teLink = txtTeLink.Text;
                obNProduto.qtValorMedio = 0;
                obNProduto.nrNotaMedia = 0;
                obNProduto.teEspecificacoes = txtTeEspecificacoes.Text;
                obNProduto.cdProduto = Convert.ToInt32(txtCdProduto.Text);
                obNProduto.idSubtipoProduto = Convert.ToInt32(ddlSubtiposProduto.SelectedValue);
                obNProduto.idMarca = Convert.ToInt32(ddlMarcas.SelectedValue);

                idProduto = obNProduto.Salvar();
                if (idProduto > 0)
                {
                    this.txtTeFoto.SaveAs(Server.MapPath("../../Imagens/Produto/" + idProduto + Path.GetExtension(nomeArquivo)));
                    obNProduto.teFoto = idProduto + Path.GetExtension(nomeArquivo);
                    obNProduto.Alterar(idProduto);
                    divMsnIncluirSucesso.Visible = true;
                    divMsnIncluirAtencao.Visible = false;
                }
                else
                {
                    divMsnIncluirSucesso.Visible = false;
                    divMsnIncluirAtencao.Visible = true;
                }
            }
            else
            {
                divMsnIncluirSucesso.Visible = false;
                divMsnIncluirAtencao.Visible = true;
            }
        }

        public bool verificarForm()
        {
            var boForm = true;

            idMarca = Convert.ToInt32(ddlMarcas.SelectedValue);
            if (idMarca == 0)
            {
                boForm = false;
                lblDdlMarcaObrigatoria.Text = "A marca é obrigatória!";
            }
            else
            {
                lblDdlMarcaObrigatoria.Text = "";
            }

            idSubtipoProduto = Convert.ToInt32(ddlSubtiposProduto.SelectedValue);
            if (idSubtipoProduto == 0)
            {
                boForm = false;
                lblDdlSubtipoProdutoObrigatorio.Text = "O subtipo de produto é obrigatório!";
            }
            else
            {
                lblDdlSubtipoProdutoObrigatorio.Text = "";
            }

            cdProduto = txtCdProduto.Text;
            if (string.IsNullOrEmpty(cdProduto))
            {
                boForm = false;
                lblCdProdutoObrigatorio.Text = "O código de produto é obrigatório!";
            }
            else
            {
                lblCdProdutoObrigatorio.Text = "";
            }


            
            if (string.IsNullOrEmpty(txtNmProduto.Text))
            {
                boForm = false;
                lblNmProdutoObrigatorio.Text = "O nome do produto é obrigatório!";
            }
            else
            {
                lblNmProdutoObrigatorio.Text = "";
            }

            if (string.IsNullOrEmpty(txtDsProduto.Text))
            {
                boForm = false;
                lblDsProdutoObrigatorio.Text = "A descrição do produto é obrigatória!";
            }
            else
            {
                lblDsProdutoObrigatorio.Text = "";
            }

            if (string.IsNullOrEmpty(this.txtTeFoto.FileName)){
                boForm = false;
                lblTeFotoObrigatoria.Text = "A foto do produto é obrigatória!";
            }
            else
            {
                lblTeFotoObrigatoria.Text = "";
            
            }

            if (string.IsNullOrEmpty(txtTeEspecificacoes.Text))
            {
                boForm = false;
                lblTeEspecificacaoObrigatoria.Text = "A especificação do produto é obrigatória!";
            }
            else
            {
                lblTeEspecificacaoObrigatoria.Text = "";

            }

            return boForm;
        }

        protected void ddlTiposProduto_SelectedIndexChanged(object sender, EventArgs e)
        {
            var idTipoProduto = Convert.ToInt32(ddlTiposProduto.SelectedValue);
            var obNSubtipoProduto = new NSubtipoProduto();
            ddlSubtiposProduto.DataSource = obNSubtipoProduto.pegarSubtiposProduto(idTipoProduto);
            ddlSubtiposProduto.DataBind();
            ddlSubtiposProduto.Items.Insert(0, new ListItem("Selecionar o subtipo de produto", "0"));

            ddlSubtiposProduto.Enabled = true;
        }

        
        
    }
}